Ich kenne mich jetzt nicht so gut in Java aus. Vielleicht liegt es daran, dass der Typ der Parameter nicht stimmt. Ggf. kannst du die Parameter selber definieren.
Wie sieht denn die Verbindungsfolge aus ?
Vielleicht ist ja Transaktionssteuerung eingeschaltet und die Tabelle wird nicht aufgezeichnet ?
Da Java auf der AS/400 wohl schlecht zu debuggen ist, kannst du ja mal zwischen den Inserts (also nicht per Batch) mal einen Delay von 1s einbauen und dann per "WRKOBJLCK SQLTEST *FILE" den Zugriffsjob rausfinden und ins Joblog schauen.
Vielleicht kannst du ja auch per Execute("call qcmdexc parm('STRDBG UPDPROD(*YES)', 0000000020.00000)" den Job in DEBUG-Modus versetzen um dann die Joblog-Hinweise zu analysieren.

Es schein wohl so, dass Prepared irgendwie nicht funktioniert oder implizit CommitTrans (o.ä.) ausgeführt wird.
Eigentlich dürften so extreme Unterschiede nicht vorkommen.