code: def test_try_pick_piece_of_work_concurrent_update(self):
      self.reset_work_pieces()
      self.work_pieces.work["w10"] = self.work1
      self.work_pieces.work["w20"] = self.work2
      self.work_pieces.write_all_to_datastore()
      # any concurrent change in the entity will cause transaction to fail
  
      def transaction_hook(client):
          key = client.key(
              "WorkType", TEST_WORK_TYPE_ENTITY_ID, "Work", "w20"
          )
          client.entities[key]["output_adversarial_batch_id"] = "o3"
  
      self.datastore_client.set_transaction_hook(transaction_hook)
      work_id = self.work_pieces.try_pick_piece_of_work("worker0")
      self.assertIsNone(work_id)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import unittest
  from six import assertCountEqual
  from six import itervalues
  from eval_lib import work_data
  from eval_lib.tests import fake_cloud_client
label_desc: Use image node_id 14 for calling the WorkPiecesBaseTest obj's underlying member method code with example usage: obj.test_try_pick_piece_of_work_concurrent_update() without return types