Thanks to all!
I did not realize that there were db changes on both sides. Interesting. I am very familiar with the WP db. Too familiar I suppose. I often go to the db first when I should probably use other approaches.
Yes, I am such a db obsessed fool. I love db design and creation. But… I am not familiar with the Discourse db at all (yet). So…
Ah yes… proper logging is a wonderful thing.
Yes, excellent. I will consider this the proper answer, as it is precisely what I needed.
However…
What I ended up doing was using the WP cli tool as follows
$wp post update 396 398 402 {several more here} --tags_input=discourse
Before this I retrieved a list of row ID’s from the wp_posts table that had post_status = ‘publish’ and post_type = post
I gave that list to the wp post command and it took about 500ms per row using a 4core server. If I specified more than 20 or so rows, Discourse would… ???.. but after that no more links would be made. So I fed it 20 at a time with a 30 second delay and worked on other projects.
So, that answer is a for-real hack, but for me (not yet having @angus answer), it was the most direct route.