And, not a single one of the declarative frameworks use the HTMLTableElement API!

Which is completely fine as long as it makes zero difference.

It's not that long ago when people were fighting here about React, Vue etc being too complex and comparing bundle sizes.

Using this right now would increase bundle size for no good reason whatsoever.

So how they do they talk to the browser to add a row to the table? Do you know of any API other than DOM used for this?

They use createElement instead of the table-specific API.