Функции MySQL XML не будут делать это автоматически.
Вы можете создать сохраненную функцию для вызова UpdateXML (), если элемент присутствует, в противном случае, чтобы добавить элемент, используя собственную логику.
Вот базовый шаблон для начала работы:
DELIMITER $$
CREATE FUNCTION update_xml(xml_target text, xpath_expr text, new_xml text) returns text
BEGIN
DECLARE return_val text;
IF (ExtractValue(xml_target,xpath_expr) != '')
THEN
RETURN updateXML(xml_target,xpath_expr,new_xml);
ELSE
SET return_val := xml_target;
-- add code here to insert the new element into your XML string
RETURN return_val;
END IF;
END $$