Cela est généralement dû à des doublons dans la requête spécifiée dans la clause USING. Cela signifie probablement que TABLE_A est une table parent et que le même ROWID est renvoyé plusieurs fois.
Vous pourriez rapidement résoudre le problème en utilisant un DISTINCT dans votre requête (en fait, si 'Y' est une valeur constante, vous n'avez même pas besoin de la mettre dans la requête).
En supposant que votre requête est correcte (vous ne connaissez pas vos tables), vous pouvez faire quelque chose comme ceci :
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';