Lowering the cyclomatic complexity of this method, suggestions?
You could easily extract the 4 functions you have within if statements by having

arrayChecker()
arraySetter()
classChecker()
arraySetter()


And then have something like 

//Exit immediately if override is not allowed ( why wait ? )
//Personally, that would be the first line for me
if(!$allowOverride)
  return;

// Payload is array or ArrayAccess implementation inside main array
if (is_array($payload) || $payload instanceof \ArrayAccess) {
  if(!$arrayChecker($paramName)) {
    $arraySetter($paramName, $paramValue);
  }
}

// Payload is stdClass inside the main array
if ($payload instanceof \stdClass) {
  if(!$classChecker($paramName)) {
    $classSetter($paramName, $paramValue);
  }
}  


One more thing, you re-use the payload variable. For me, what you get from ->getPayload() is a payload of an array with something in the first position. ( crate plus the goods ). To then re-use the variable to point just to the goods seems wrong to me.