Es stellte sich heraus, dass ich Flush im Entity Manager aufrufen muss, um den Persistenzkontext mit der zugrunde liegenden Datenbank zu synchronisieren. Außerdem habe ich alle Anweisungen zur Transaktionsverwaltung aus dem SP entfernt, und es hat wie erwartet funktioniert. Die Abfragen innerhalb der gespeicherten Prozedur sind jetzt Teil der von Spring verwalteten Transaktion.