How to best understand cache associativity?
Yes, that is essentially correct. The key question is, "For any particular memory address, how many different locations in the cache can hold that address?" Each one of those potential cache locations needs a tag comparator in order to determine whether that location does in fact currently contain that memory address.