No, a method (more generally any function) is always executed in the same thread that called it. This has nothing to do with them being methods of QObjects who happen to have a notion of thread affinity.
However, Qt contains some features allowing a programmer to easily trigger the execution of a method of a QObject in the thread controlling this QObject (which may be distinct from the current thread) provided this thread runs an event loop. One such way is to use signal-slot connections. Another way (which may be simpler in your case) is to use QMetaObject::invokeMethod().
In any case I strongly recommend you read the docs on signals/slots across threads and QObject's thread affinity.
I do not understand what you mean by "lock the member method with QMutex". All I can say is that QMutex is useful when you need to serialize access to a resource shared among sevaral threads.
Bookmarks