def save
      return false unless valid?
      if persisted?
        namespace.modify(dn, changes)
      else
        namespace.add(dn, changes)
      end
      @original_attributes = (@original_attributes||{}).merge(@attributes)
      @attributes = {}
      true
    end
def save
      return false unless valid?
      if persisted?
        namespace.modify(dn, changes)
      else
        namespace.add(dn, changes)
      end
      @original_attributes = (@original_attributes||{}).merge(@attributes)
      @attributes = {}
      true
    end
For new objects, does an LDAP add.  For existing objects, does an LDAP
 modify.  This only sends the modified attributes to the server.  If a
 server constraint was violated, populates #errors and returns false.