code: @Override
  	public int update(MetadataReference metadataReference) throws SQLException {
  
  		UpdateBuilder<MetadataReference, Void> ub = updateBuilder();
  		ub.updateColumnValue(MetadataReference.COLUMN_REFERENCE_SCOPE,
  				metadataReference.getReferenceScope().getValue());
  		ub.updateColumnValue(MetadataReference.COLUMN_TABLE_NAME,
  				metadataReference.getTableName());
  		ub.updateColumnValue(MetadataReference.COLUMN_COLUMN_NAME,
  				metadataReference.getColumnName());
  		ub.updateColumnValue(MetadataReference.COLUMN_ROW_ID_VALUE,
  				metadataReference.getRowIdValue());
  		ub.updateColumnValue(MetadataReference.COLUMN_TIMESTAMP,
  				metadataReference.getTimestamp());
  
  		setFkWhere(ub.where(), metadataReference.getFileId(),
  				metadataReference.getParentId());
  
  		PreparedUpdate<MetadataReference> update = ub.prepare();
  		int updated = update(update);
  
  		return updated;
  	}
docs: {@inheritDoc}
  
  Update using the foreign key columns