PFG saved data validation function

First thing that comes to my mind is the adapt_roles context manager:

if not plone.api.user.has_permission(
    permissions.AddPortalContent, obj=self.context
):
    with plone.api.env.adopt_roles(["Anonymous", "Contributor", "Editor"]):
        plone.api.content.create(**contribution_data)
else:
    plone.api.content.create(**contribution_data)

With the above snippet anonymous users are able to add new content.

So you could adapt the roles required for getting the existing phone numbers and then perform the check in a safe context block.