code: def test_out_of_transaction_does_not_block_concurrent_writes(self):
      lore.io.main.execute(sql="drop table if exists tests_autocommit")
      lore.io.main.execute(
          sql="create table tests_autocommit(id integer not null primary key)"
      )
  
      priors = []
      posts = []
      thrown = []
  
      def insert(delay=0):
          try:
              priors.append(
                  lore.io.main.select(
                      sql="select count(*) from tests_autocommit"
                  )[0][0]
              )
              lore.io.main.execute(
                  sql="insert into tests_autocommit values (1), (2), (3)"
              )
              posts.append(
                  lore.io.main.select(
                      sql="select count(*) from tests_autocommit"
                  )[0][0]
              )
              time.sleep(delay)
          except sqlalchemy.exc.IntegrityError as ex:
              thrown.append(True)
  
      slow = Thread(target=insert, args=(1,))
      fast = Thread(target=insert, args=(0,))
  
      slow.start()
      time.sleep(0.5)
      fast.start()
  
      fast.join()
      fast_done = datetime.datetime.now()
      slow.join()
      slow_done = datetime.datetime.now()
  
      self.assertEqual(priors, [0, 3])
      self.assertEqual(posts, [3])
      self.assertEqual(thrown, [True])
      self.assertAlmostEqual(
          (slow_done - fast_done).total_seconds(), 0.5, 1
      )
  
imports: from __future__ import unicode_literals
  import unittest
  from threading import Thread
  import datetime
  import time
  import math
  import lore.io.connection
  import sqlalchemy
  from sqlalchemy import event
  from sqlalchemy.engine import Engine
  import pandas
  import lore
label_desc: Use image node_id 12 for calling the TestConnection obj's underlying member method code with example usage: obj.test_out_of_transaction_does_not_block_concurrent_writes() without return types