Изглежда, че не можете да направите всичко това в един спусък. Съгласно документацията :
В рамките на съхранена функция или тригер не е разрешено да се променя таблица, която вече се използва (за четене или писане) от оператора, който е извикал функцията или тригера.
Според този отговор , изглежда, че трябва:
създайте съхранена процедура, която вмъква/актуализира целевата таблица, след което актуализира другите редове, всичко това в транзакция.
Със съхранена процедура вие ръчно ще запишете промените (вмъкнете и актуализирате). Не съм правил това в MySQL, но тази публикация изглежда като добър пример.