Transactional behavior is not applied to internal method calls.
When a transaction-managed method calls another method in the same class, the transactional proxy is bypassed. As a result, the internal method doesn't execute within a transaction. This can lead to inconsistent states if any database operations fail.
Additional Notes
What issues arise from transaction self-invocation?