Perché è se può capitarti più di qualche occasione d'errore richiami in quel momento il rollback.

Quello che non so dirti però, primo perché l'esempio lo studiai, anzi, studiatti proprio (un sacco di tempo fa ), su oracle, poi perché proprio non ricordo, è se il rollback chiuda la transazione dopo aver ripristinato la situazione come era all'inizio del start transaction o lasci ancora la transazione aperta.

Se il rollback chiude ok, se non chiude, comunque, a prescindere se è stato fatto o no va fatto un commit alla fine.