So I was thinking some more about this and I don't think we should do anything when a cascade delete fails. There are a few reasons I can think of for failure:

* Deletion was stopped by an event. Perhaps a file upload behavior event stops a beforeDelete event because a file could not be deleted from cloud storage. In this situation I think other rows should still be attempted. Even if a failure did happen it might not happen on the first row which would still result in incomplete deletion unless an exception was raised an atomic = true. Hopefully in this situation an exception is raised and atomic = true, there is no safe recourse for us really if no exception was raised, as `false` could be confused with the situations below.
* Deletion failed because of a database server error. This will be converted into an exception and abort any in progress transaction.
* When callbacks are not used `deleteAll()` could return false because there were no rows deleted. This should not be interpreted as a failure that aborts the deletion.