docs: Method getSetter(Method getter) {
          synchronized (setterCache) {
              if ( !setterCache.containsKey(getter) ) {
                  String fieldName = ReflectionUtils.getFieldNameByGetter(getter, false);
                  String setterName = "set" + fieldName;
                  Method setter = null;
                  try {
                      setter = getter.getDeclaringClass().getMethod(setterName, getter.getReturnType());
                  } catch ( NoSuchMethodException e ) {
                      throw new DynamoDBMappingException("Expected a public, one-argument method called " + setterName
                              + " on " + getter.getDeclaringClass(), e);
                  } catch ( SecurityException e ) {
                      throw new DynamoDBMappingException("No access to public, one-argument method called " + setterName
                              + " on " + getter.getDeclaringClass(), e);
                  }
                  setterCache.put(getter, setter);
              }
              return setterCache.get(getter);
          }
      }