How to include validation fields to find user for a contribution page to avoid duplicate?
Your question suggests you may need to reread https://docs.civicrm.org/user/en/stable/common-workflows/deduping-and-merging/ and then set up your matching rule as you describe and use that. if they match then it will add data to the existing contact rather than create a new one