We have a page inserting three different object types. Historically, it has attempted to insert one and, assuming no errors (try and catch), moved to the next. Until all objects were inserted. If there was an error on the third object type, it would delete the first two inserted objects, give the user a chance to fix the errors, and then try again.
We are now using different permission sets, and not all users have the ability to delete these objects. Is there a way to check for insert errors all at once so we can avoid deleting the already inserted object?