Sembra che tu debba impostare useAffectedRows
manualmente nelle proprietà del driver.
Ho ottenuto la soluzione dopo aver cercato su Google. Puoi fare riferimento a questo bug di MySql per questo INSERT ON DUPLICATE KEY UPDATE return 0 if no change in JDBC ExecuteUpdate
Inoltre nella discussione si afferma che l'hanno rilasciato in 5.1.7
MODIFICA Per la tua seconda domanda:
useAffectedRows :
Predefinito:falso
Dalla versione:5.1.7
Riferimento useAffectedRows in JDBC Connector-j