# File sql-serialize.rb, line 912
  def delete (dbi, new_transaction = true)
    begin
      refcount = sql_refcount (dbi, sql_assoc_id(dbi))
      if refcount == 1
        dbi.do_more("BEGIN") if new_transaction
        sql_delete_assocs(dbi)
        sql_delete(dbi)
        dbi.do_more("COMMIT") if new_transaction
      else
        raise SQLSerializeError.new("Object reference count is too high (%d)." % [refcount]) if new_transaction
        sql_decrease_refcount (dbi, sql_assoc_id(dbi))
      end
    rescue Exception
      dbi.do_more("ROLLBACK") if new_transaction
      raise # reraise the exception

    end
  end