Използвате контейнера за управление на постоянството. Чрез използване на транзакция REQUIRED, JPA ще започне нова транзакция за всяко извикване на базата данни. Следователно не е необходимо да стартирате или ангажирате транзакция в рамките на съхранената процедура. Всъщност това е лоша идея.
Не споменавате дали стартирате нова транзакция в съхранената процедура, а само че имате ангажимент там. Ако не стартирате (нова) транзакция, този ангажимент ще създаде проблеми. Дори и да го направите, не е необходимо, това е видът неща, с които използваме JPA като начало.