That's a fallacy people choose to believe.
Yes, the club get most of the money upfront as part of the deal. However, if Puma and the sponsor then miss out on millions of shirt sales, that will come into play during the next contract negotiations. City will absolutely lose money during those negotiations.
To bring the sort of lost revenue to the likes of Puma to light, studies show that there are about 60% more fake shirts sold than real ones across the Premier League (10m real 16m fake).
City sell about 1.3m shirts per season, so that could mean 2 million fakes are also sold. If even a fraction of that amount was replaced by real shirts, that would put city in a much stronger bargaining position come contract renewals.
I know if I was the boss at Puma I would pay more if I knew I could sell say 2m shirts compared to 1.3m.
At the end of the day though, those who buy fake shirts will justify it to themselves regardless of what the facts say.