The agent is entirely asynchronous.  When you say 'lock' you need to describe what you mean because if you implement a lock like you might outside of Twisted you could end up blocking the reactor meaning no other code would execute.