Testing using Python identified an area in which executemany could be improved to work properly with update statements. Using ctsqlExecute (DSQL API) to execute a batch with update statements (instead of insert statements) did not return any error but only the first update was actually applied.
Logic was added in the ctsqlapi ctsqlExecute function so that it now calls dh_executebach when it detects a batched operation. This function can handle both batched inserts and updates. The logic also properly counts updated records (considering that an update can touch multiple rows).