code: public <T extends Model> T fromMap(Map input) {
          Set<String> changedAttributeNames = hydrate(input, false);
          dirtyAttributeNames.addAll(changedAttributeNames);
          return (T) this;
      }
docs: Overrides attribute values from input map. The input map may have attributes whose name do not match the
  attribute names (columns) of this model. Such attributes will be ignored. Those values whose names are
  not present in the argument map, will stay untouched. The input map may have only partial list of attributes.
  
  @param input map with attributes to overwrite this models'. Keys are names of attributes of this model, values
  are new values for it.