Your specific request simply cannot be implemented in a performant manner. Even if you were to use bounce e-mails to determine if an e-mail was successfully sent, the bounce generally won't come immediately, and may sometimes take hours, which means you really shouldn't try and do this synchronously (i.e., expect the method that sent the e-mail to throw an exception if the e-mail wasn't received).
Depending on what you want to do though, you may be able to meet your requirement by doing this asynchronously. For instance, I worked with a client that had a mailing list application where they did not need to handle it immediately if an e-mail bounced. They did not even need to know this reliably (i.e., if an e-mail isn't received, but it's not bouncing, they didn't care). They just needed to know that an e-mail is invalid, and unsubscribe it.
This application used LISTSERV. E-mails sent have a custom, unique Return-Path header. Upon receiving N bounces from a particular recipient, the e-mail is automatically unsubscribed, and any database records associated with the recipient is cleaned up as well.
I'm not sure if there's an easy way to implement this without LISTSERV, but you may want to look into smtp2web.