Detta orsakas vanligtvis av dubbletter i frågan som anges i USING-satsen. Detta betyder förmodligen att TABLE_A är en överordnad tabell och samma ROWID returneras flera gånger.
Du kan snabbt lösa problemet genom att använda en DISTINCT i din fråga (i själva verket, om "Y" är ett konstant värde behöver du inte ens sätta det i frågan).
Förutsatt att din fråga är korrekt (känner inte dina tabeller) kan du göra något så här:
MERGE INTO table_1 a
USING
(SELECT distinct ta.ROWID row_id
FROM table_1 a ,table_2 b ,table_3 c
WHERE a.mbr = c.mbr
AND b.head = c.head
AND b.type_of_action <> '6') src
ON ( a.ROWID = src.row_id )
WHEN MATCHED THEN UPDATE SET in_correct = 'Y';