There's the problem.

Your answer did not imply that you recognized that as the culprit, so I will explain.

You only have a single transaction in a single connection.



...
Called proc1
---...
---INSERT
---...
---Called proc2
------...
------COMMIT; -- Transaction 2 commits, including insert
------
------end;
---...
---ROLLBACK; -- only changes in transaction 3 are rolled back.


HTH,

- Chris