In Ihrer INSERT-Anweisung im Libary_Update-Trigger haben Sie die folgende Zeile:
WHERE subtree.`ancestor` = NEW.`iD`
aber Sie aktualisieren das ID-Feld nicht, daher glaube ich nicht, dass Sie einen NEW.iD-Wert haben werden. Sollte diese Zeile möglicherweise stattdessen OLD.iD verwenden?