Распространение REQUIRES_NEW
означает:
Создать новую транзакцию, приостановить
текущая транзакция, если таковая существует.
Таким образом, транзакции не будут вложенными - первая будет приостановлена, удалена, и будет запущена новая, не связанная транзакция.
Вам не нужно вкладывать сами транзакции, вам просто нужно убедиться, что каждый раз, когда вы проходите границу транзакции, вы наследуете существующую транзакцию (или начинаете новую). Распространение по умолчанию PROPAGATION_REQUIRED
обычно достаточно хорошее.
Интересно, что в JDBC 3.0 была введена концепция вложенных транзакций, но спецификации EBJ еще предстоит наверстать упущенное.