HitsPage can store into a TV if the HitsPage snippet is used in the template or the resource content:
[[!HitsPage? &saveTv=`true`]]
There are a couple of bits of the code that could be improved.
It specifically requires a TV named "HitsPage"; this could instead use the actual value of the saveTv property being the name of the TV to use.
It also specifically checks for a property value of 'true', rather than simply checking to make sure it's set to a true value.
If the property saveTv is not set to "true", then only the resource properties is set (as a JSON string). This is the only use I have yet noticed of resource properties; that's interesting.
The snippet returns the value, either of the TV if used or of the resource property. So if this is used in such a way to only increment the count but not display it, you would need to hide the output in some way, in an HTML element with display:none perhaps.