Agree mostly with that, but the issue is that in certain occupations where you have a high transitivity of professionals, monopoly of work, high income, and some sort of power law in terms of outcomes, and asymmetric info that can be on the weak side of the negotiation that can generate high payouts an union does not help so much.
For instance, blue-collar professions do not have much of these, so being out of any agreement would be a huge disadvantage for the worker; for technology in general (talking here about software engineers specifically, I do not know other workers in tech) an union would be beneficial but not critical since this professional has some of the attributes described above.