How do I delete an old node when a new node is created?
with views rules is possible, a bit complicated, make a user view, you will need a contextual filter, "When the filter value is NOT available", "Provide default value", php code, then add something like: 

global $user; // gets current logged in user object

 if (isset($user-&gt;field_user_address[LANGUAGE_NONE][0]['country'])) {      
  $user_country = $user-&gt;field_user_address[LANGUAGE_NONE][0]
['country'];
return $user_country;}


instead of using &amp; returning $user_country, use &amp; return your email field, and that view will return only the loggedin user field-email, add a relationship on node author, then add "node title" or whatever form the relationship, then apply a rule on that view and delete (or unplubish) that content. hope it helps.

EDIT: may be is over-coded my solution, just add a user view, contextual filter, loggedin user from URL, apply filters and relationships as needed to only get the node you are looking for, then apply a rule on that view.