code: public TransferManager getTransferManager(String region) {
          synchronized (transferManagersByRegion) {
              TransferManager tm = transferManagersByRegion.get(region);
              if (tm == null) {
                  tm = new TransferManager(getClient(region));
                  transferManagersByRegion.put(region, tm);
              }
              return tm;
          }
      }
docs: Returns a {@link TransferManager} for the given region, or throws an
  exception when unable. The returned {@link TransferManager} will always
  be instantiated from whatever {@link AmazonS3} is in the cache,
  whether provided with {@link #useClient(AmazonS3)} or instantiated
  automatically from {@link AWSCredentials}.
  
  Any {@link TransferManager} returned could be shut down if a new
  underlying {@link AmazonS3} is provided with
  {@link #useClient(AmazonS3)}.
  
  @param region
  The region string the returned {@link TransferManager} will be
  configured to use.
  @return A transfer manager for the given region from the cache, or one
  instantiated automatically from any existing
  {@link AmazonS3},