How I understand your problem I would expect that BT / ET plus read lock for the select should solve your issue.
But this mean also that you can not load and do the SELECT/UPDATE in parallel.
is col_a the PI of table_a?
Are there additional statements between the select and the update?
This should probably work:
If this is a BTEQ script the best way would be a multistatement request, so the optimizer knows there's an update after the select:
Sel col_a, col_b, Is_reported from table_a where col_a='x'
;Update table_a set Is_reported = 1 where Is_reported=null and col_a='x';