Aha, so your sample code does not demonstrate your scenario.
In that case, use Query::update_recordset() method. Here is an example from WHSPrintLabels
class:
Query waveLabelQuery = new Query();
QueryBuildDataSource qbdsWaveLabel = waveLabelQuery.addDataSource(tableNum(WHSWaveLabel));
qbdsWaveLabel.addRange(fieldNum(WHSWaveLabel, WaveLabelId)).value(rangeValue);
Map fieldSetMap = new Map(Types::String, Types::String);
fieldSetMap.insert(fieldStr(WHSWaveLabel, Printed), any2Str(NoYes::Yes));
fieldSetMap.insert(fieldStr(WHSWaveLabel, PrintedDateTime), DateTimeUtil::toStr(printedDateTime));
fieldSetMap.insert(fieldStr(WHSWaveLabel, PrintedBy), printedBy);
Query::update_recordset(fieldSetMap, waveLabelQuery);