Bubble has “already in use errors” without security issues.
I’d just use bubbles build in “already in use” and use the “an unknown error has occurred” only when error message is email in use error message (from language settings)
If you were to leave it as a db search like you currently do then your db is leaking user emails.
Do a search for Users (constraint: Email = this input’s email):count
The issue with this is if privacy rules are setup correctly it should always return 0. If not correct you can go to your network tab after the search happens and see it pulling not just a count but raw text of all the users emails.