The library uses this exception to distinguish a deliberate rollback from
other exceptional situations. Normally, raising an exception will cause the
transaction
method to rollback the database transaction
and pass on the exception. But if you raise a Rollback exception, then the database transaction
will be rolled back, without passing on the exception.