Puede ponerlos en la interfaz, pero tenga en cuenta que es posible que las transacciones no terminen ocurriendo en algunos casos. Vea el segundo consejo en la Sección 10.5.6 de los documentos de Spring:
Spring recomienda que solo anote clases concretas (y métodos de clases concretas) con la anotación @Transactional, en lugar de anotar interfaces. Sin duda, puede colocar la anotación @Transactional en una interfaz (o un método de interfaz), pero esto solo funciona como lo esperaría si está utilizando proxies basados en interfaz. El hecho de que las anotaciones de Java no se hereden de las interfaces significa que si está utilizando proxies basados en clases (proxy-target-class = "true") o el aspecto basado en tejido (mode = "aspectj"), la configuración de la transacción es no reconocido por la infraestructura de proxy y tejido, y el objeto no se incluirá en un proxy transaccional, lo que sería definitivamente malo.
Recomendaría ponerlos en la implementación por este motivo.
Además, para mí, las transacciones parecen un detalle de implementación, por lo que deberían estar en la clase de implementación. Imagínese tener implementaciones de contenedor para el registro o implementaciones de prueba (simulacros) que no necesitan ser transaccionales.