You could write a post-function script that checks your conditions and deletes the relecant sub-tasks, but I would very strongly recommend that you do not automate this.
Deleted issues are gone, utterly destroyed, you have no record that they were even there, let alone what they were for.
This makes a nonsense of a tracking system, and with an automation, it means you're destroying information without human oversight.
You would need an app like ScriptRunner for Jira or Automation for doing that.
In case you already have ScriptRunner you can write script to check for specific conditions and use a code like this below to delete the issue.
IssueManager im = ComponentAccessor.getIssueManager()
def issue = im.getIssueObject("SCRUM-25") as MutableIssue
ApplicationUser user = ComponentAccessor.getUserManager().getUserByName("admin")
im.deleteIssue(user, issue, EventDispatchOption.ISSUE_DELETED, false)
I hope it helps.