Mark the object to be deleted with all the normal security checks.
An object can be successfully marked delete only when it is not flagged
NODELETE, the current set it belongs to is not being flagged NODELETE,
and it passes all the checks in its canDelete method.
Please note that if you need to apply application specific rules when an object
is being deleted, please overwrite method delete(long) instead of this one
in the derived class.