You're thinking of things in terms of how they function rather than the value they provide - from a business value perspective COTS and low-code are identical, its just that low-code used to be GUI desktop apps, now they're GUI web apps.
And from a business value they're very different: COTS you do not want to modify/adapt to your busines, otherwise you get problems upgrading, etc. Low-code is often used to innovate and differentiate, as a programming layer to quickly change COTS to your business needs.
Disclaimer: working for a low-code vendor.
This is redefining a term after the fact to suit marketing needs of the new term - with the except of bespoke solutions, it has always been possible to adapt COTS products - have you not seen SAP? Dynamics? Even Excel is COTS
I would consider Excel a no-code/low-code (pretty complex macros in there + vba) platform.