Замените предложение where следующим:
WHERE ROWID = state_pkg.newRows(i));
ROWID - это псевдостолбец для адреса каждой строки, и это тип данных.
EDIT:
Или, может быть, что-то вроде этого:
UPDATE Factura_Detalle
SET Precio =
(
SELECT pre.PRECIO
FROM PRECIO pre
WHERE pre.PRODUCTO = Factura_Detalle.PRODUCTO
)
WHERE ROWID = state_pkg.newRows(i);