Thanks Maxim, moving the update logic to activity fixed the issue.
My activites now, procure the object from Parent workflow via query and update it back via signal.
Given that I have multiple activites running in parallel and doing this update on the same parent workflow, do I need do any explicit syncronization in the parent workflow similar to this (Thread Syncronization when using Async.function inside a Workflow - #2 by maxim).