removeItem() deletes  images referencing the item also.

But theoretically "UPDATE" prepended with "DELETE FROM images" could be more efficient then recreating the item indeed - no need to update PK index of the events table.

OTOH the current code does only one request to DB. Also UPDATE adds one PK lookup.

don't know...