Keep the foreign key constraint using soft delete
You could require the UPDATE to reference a subquery that will return no results if references exist. Then, if 0 rows are updated, you can raise a message to the UI to report an error.