    # File lib/sqlite3/database.rb, line 557
        def transaction( mode = :deferred )
          execute "begin #{mode.to_s} transaction"
          @transaction_active = true

          if block_given?
            abort = false
            begin
              yield self
            rescue ::Object
              abort = true
              raise
            ensure
              abort and rollback or commit
            end
          end

          true
        end