Если версия вашей БД 9.5+, то может использовать синтаксис insert ... on conflict update
.Итак, рассмотрим использование
insert into product_image(product_id, url, is_primary)
select id, image_url, False from product
on conflict(url) do update
set is_primary = True;
, где product_image.url
должно быть unique
, как в Демо