Indexes don't "maintain counts", indexes maintain pointers to the table records.
What you need is "materialized view" storing aggregates. And it looks like you already have it with your triggers.
pgsql-general by date:
Соглашаюсь с условиями обработки персональных данных