If you follow it through, it’s basically a .filter(), a slice to set a limit of 21 (MAX_GET_RESULTS), and then it fetches and checks if there’s one instance, zero, or more than one (MultipleObjectsReturned).
Your code will be simpler if you do the same pattern:
Special handling isn’t even needed for the one object case.
Note this may have poor performance if it’s possible for many objects to match the .fliter(), in which case I’d recommend adding a limit as .get() does.