function rollBackTextAttribute( $rollBackAction, $valueId, $objectId, $attributeId, $text, $operation ) {
	if ( shouldRemove( $rollBackAction, $operation ) ) {
		removeTextAttributeValue( $valueId );
	}
	elseif ( shouldRestore( $rollBackAction, $operation ) ) {
		createTextAttributeValue( $valueId, $objectId, $attributeId, $text );
	}
}
function updateTextAttributeValue( $text, $textValueAttributeId ) {
	$textValueAttribute = getTextValueAttribute( $textValueAttributeId );
	removeTextAttributeValue( $textValueAttributeId );
	createTextAttributeValue( $textValueAttributeId, $textValueAttribute->object_id, $textValueAttribute->attribute_mid, $text );
}
	public function remove( $keyPath ) {
		$textId = $keyPath->peek( 0 )->textAttributeId;
		removeTextAttributeValue( $textId );
	}