I would take it one step further and go with the model lifecycles: https://strapi.io/documentation/developer-docs/latest/concepts/models.html#lifecycle-hooks
And use the query system in say a beforeFind or beforeFindOne to get the existing count +1. There is a risk of a race condition so maybe the controller method is better as you can do more complex logic (like checking for false positives via IP checking ect)