Hi, Emil,
IClientSession instances can only be used by the MongoClient that created them. You use the IClientSession to coordinate work across multiple calls. This includes transactions, but also causally consistent reads (e.g. writing to the primary and reading the result from a secondary).
The recommended way to use this API is to start a session, start a transaction with that session, pass the session into any related operation (e.g. pass the same session to your Car and Wheel updates), and then commit the transaction. Either the Car and all Wheels are archived (e.g. commit succeeds) or none of them are (e.g. commit fails and an exception is thrown). You cannot end up in a situation where some are archived and others are not if you performed all the operations within a transaction using the same session. Hope that helps.
Sincerely,
James