async function shouldReturnSummaryWithSystemUpdates (
    protocolVersion,
    session,
    useTransaction = false
  ) {
    if (protocolVersion < 4.0) {
      return
    }

    let runnable = session
    if (useTransaction) {
      runnable = await session.beginTransaction().toPromise()
    }

    let dropUser = true

    try {
      await verifySystemUpdates(
        runnable,
        "CREATE USER foo SET PASSWORD 'barizon1'",
        {},
        1
      )
    } catch (e) {
      // the user should not be dropped if their creation fails
      dropUser = !(e instanceof Neo4jError)
      throw e
    } finally {
      if (dropUser) {
        await verifySystemUpdates(runnable, 'DROP USER foo', {}, 1)
      }
    }
  }
@param {number} protocolVersion
@param {RxSession} session
@param {boolean} useTransaction