Don't set the FK to null if we're going to delete it anyway

It is legitimate for the FK to form part of the PK (albeit a bad idea), and
->set() explodes if you try to change the PK. So, don't try to change the PK
if we're deleting it.

Exploding if we're not cascading is fine because this would represent a broken
DB structure.