• Perhaps better to rollback before raiserror.

    You don't know what an error handler would do, especially time wise.

    Releasing a transaction at the earliest will release locks, thus, wait at other connections.