title: How to stub S3Transfer in python
body: <p>Using botocore.stub and mock_s3 from moto I'm able to stub the boto3 S3 client like below,</p>
  
  <pre><code>from moto import mock_s3
  from botocore.stub import Stubber
  
  class TestS3(unittest.TestCase):
      @mock_s3
      def setUp(self):
          self.s3_client = boto3.client('s3', region_name='us-west-1')
          self.stubber = Stubber(client=self.s3_client)
  </code></pre>
  
  <p>Then in the test functions I'm able to use add_client_error and add_response like below and add assertions as needed,</p>
  
  <pre><code>@mock_s3
  def test_put_object_exception(self):
      self.stubber.add_client_error('put_object', service_error_code='500')
      with self.stubber:
          self.s3_service.put_object(data='/some/dummy/path', key='/some/dummy/key')
  </code></pre>
  
  <p>However in my S3 class, I'm using S3Transfer upload_file to upload files to S3, is there a way to mock S3Transfer(self.s3_client).upload_file method?</p>