Making third party API calls inside MongoDB transaction

  const client = new MongoClient(uri);
  await client.connect();
  await client
    .db('mydb1')
    .collection('foo');
  const session = client.startSession();
  const transactionOptions = {
    readPreference: 'primary',
    readConcern: { level: 'local' },
    writeConcern: { w: 'majority' }
  };
  // Step 3: Use withTransaction to start a transaction, execute the callback, and commit (or abort on error)
  // Note: The callback for withTransaction MUST be async and/or return a Promise.
  try {
    await session.withTransaction(async () => {
      const coll1 = client.db('mydb1').collection('foo');
      await coll1.insertOne({user_id: 12344,  paid: true }, { session });
      await calls_third_party_payment_vendor_api_to_process_payment();
    }, transactionOptions);
 } finally {
    await session.endSession();
    await client.close();
  }

Suppose that calls_third_party_payment_vendo_apir_to_process_payment throws an error or any system fails after await coll1.insertOne({user_id: 12344, paid: true }, { session }); was successfully written such that to cause the payment to never actually process, will the document that was inserted be guaranteed to be removed?