Capture external exceptions within transactions an rollback the transaction.
Added comments to explain the unit-test
Added comments to explain the unit-tests