PG::

RollbackTransaction class

PG::Connection#transaction 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 an PG::RollbackTransaction exception, then the database transaction will be rolled back, without passing on the exception.