Você terá que implementar isso como um gatilho de exclusão em vez de nos insights, para que funcione. Algo como:
create trigger T_Insights_D
on Insights
instead of delete
as
set nocount on
delete from broader_insights_insights
where insight_id in (select ID from deleted) or
broader_insight_id in (select ID from deleted)
delete from Insights where ID in (select ID from deleted)
Frequentemente, com exclusões em cascata e muitas chaves estrangeiras, você precisa gastar tempo para elaborar uma ordem de "cascata" para que a exclusão que ocorre no topo de uma "árvore" seja cascateada com sucesso para tabelas de referência. Mas isso não é possível neste caso.