I am trying to write an SQL/XML query in Oracle SQL Developer to update a certain row in the database table. The database has the following structure, 
the attribute "Translations" is of XML type. For example i have the book with Title "Encore une fois" and OriginalLanguage "French" and ID "11". This book has 2 Editions as following 1:
ID "17", Year "1997", Price "120", Book "11"
Translations: <Translations>
<Translation Language="English" Price="120"/>
<Translation Language="Russian" Price="110"/>
</Translations>
the second edition is:
ID "18", Year "2001", Price "150", Book "11"
Translations: <Translations>
<Translation Language="English" Publisher="Pels And Jafs" Price="180"/>
<Translation Language="Russian" Price="140"/>
</Translations>
I want to insert a new "Translation" node in the second edition. I mean i want to add the row that says
<Translation Language="Norwegian" Publisher="KLC" Price="200"/>
I wrote the following Query
UPDATE BOOKDB.EDITION
SET Translations = XMLQUERY('copy $res := $t
modify insert node element Translation {attribute Language {"Norwegian"}, attribute Publisher {"KLC"}, attribute Price {200}}
as last into $res/Translations
return $res'
PASSING Translations AS "t" RETURNING CONTENT)
WHERE Edition.Book in (SELECT ID FROM BOOKDB.Book WHERE Title = 'Encore une fois')
but i get 2 rows updated instead of one because it is placed in both editions which is wrong. How do i input the row in the second edition only?