With DataServer operations, an ODBC data source handles its own transaction roll back and recovery operations. However, if the ODBC driver supports transaction processing, the transaction scoping rules apply: a transaction ends when the code exits the outermost block that performs an update. With the DataServer:
When a transaction that updates an ODBC data source ends successfully, ABL sends a COMMIT to the data source.
If you interrupt the transaction, ABL sends a ROLLBACK to the data source.
See OpenEdge Getting Started: ABL Essentials for details on how Progress handles transactions and error conditions.