No le chiavi esterne non permettono di modificare valori dei campi che non siano coinvolti, appunto, nella relazione esterna. Tutt'al + potresti utilizzare dei trigger.
Il consiglio che ti dò è questo. Ti crei delle tabelle di recupero dati, tipo dati_fornitori e dati_prodotti con gli stessi campi delle tabelle fornitore e prodotto.
Quando elimini un fornitore, prima di eliminarlo prendi i suoi dati e quelli dei prodotti che verranno eliminati e li metti nella tabella dati_fornitori e dati_prodotti.
Poi elimini il fornitore e grazie alla relazione esterna verranno eliminati anche i prodotti.
Questo perché? Perché se tu implementi il tuo metodo con un campo enumerativo, col passare del tempo le tue 2 tabelle diverranno troppo grandi e potrai avere problemi di gestione delle stesse e di efficienza. Col mio metodo, invece, tu i dati eliminati li vai a mettere in tabelle di "backup" da cui poi li puoi recuperare quando ti servono.
è ovvio poi che ad esempio puoi decidere che ogni tot mesi svuoti dalle tabelle di backup quei dati che stanno lì da troppo tempo e che ormai è sicuro che non ti interessa + recuperare.