code: func (query Query) Update(record interface{}, chs ...*changeset.Changeset) error {
  	changes := make(map[string]interface{})
  
  	// only take the first changeset if any
  	if len(chs) != 0 {
  		cloneChangeset(changes, chs[0].Changes())
  		putTimestamp(changes, "updated_at", chs[0].Types())
  	}
  
  	cloneQuery(changes, query.Changes)
  
  	// nothing to update
  	if len(changes) == 0 {
  		return nil
  	}
  
  	// perform update
  	err := query.repo.adapter.Update(query, changes, query.repo.logger...)
  	if err != nil {
  		return transformError(err, chs...)
  	}
  
  	// should not fetch updated record(s) if not necessery
  	if record != nil {
  		return transformError(query.All(record))
  	}
  
  	return nil
  }
docs: // Update records in database.
  // It'll panic if any error occurred.