What you could do is create a MF which only stores the reference-key on the object.
Call this MF in background just after the WS response.
You should change some Java to make sure the MF is executed immediately and not in a queue or something.
This should make sure the reference-key is stored before the asynchronous response is received.
Also make sure that if the object, on which the reference-key is stored is also changed in the first WS-calling MF, the reference-key is not changed, or it is stored with the same key, so it will not be overwritten in the first called MF.