Nested Transactions

I’d like to ask, how one can/should handle following scenario.

->|User task| -> |Service task 1| ->|Service task 2|->…
|!|
/
|User task after error|

If service task 2 throwed BPMNError after writing something to DB, then when the error is handled inside the process, neither db changes in Service Task 2 nor Service Task 1 are rolled back. This is standard behaviour of camunda. That’s ok, as far as camunda implementation is concerned.
However, we think the desired state for complex system is , that the failing Service task 2 to be rolled back, because it may have introduced inconsistency inside the DB. And as JPA and Spring seems not to support nested exceptions, we’re not sure how to avoid these db inconsistencies.
Have anybody been dealing with similar problem? Is there some approach that we’re missing?