Назначение счетчика неясно, поэтому я предполагаю, что вы просто используете его, чтобы проиллюстрировать тот факт, что вы делаете только записи, соответствующие условию.
Попробуйте создать оператор вставки, который выполняет всю работу:
INSERT INTO table2 (a, b, c)
SELECT a, b, c FROM table1
WHERE myConditionIsMet
Другой вариант - циклически перебирать набор записей и вставлять запись каждый раз, когда выполняется условие. Вы должны заключить цикл в транзакцию, чтобы ничего не фиксировалось до тех пор, пока цикл не завершится. Мой JDBC немного ржавый, поэтому вот пример psuedocode:
connection.startTransaction()
for row in records
if row condition
connection.execute('INSERT ROW STATEMENENT')
connection.commitTransaction()
Первый подход предпочтительнее, но могут быть ситуации, когда условие не может быть определено в выражении SQL.