SQL statements in a procedure are part of the current transaction (see Chapter 10, “Transactions and Versioning”). You can call several procedures within one transaction or have several transactions in one procedure.
COMMIT and ROLLBACK are not allowed within any atomic statement (see “Atomic compound statements”).
Savepoints (see “Savepoints within transactions”) can be used within a procedure, but a ROLLBACK TO SAVEPOINT statement can never refer to a savepoint before the atomic operation started. Also, all savepoints within an atomic operation are released when the atomic operation completes.