Rotate Pose Bone by world coordinates
See this answer

def rotate_around_center(mat_rot, center):
    return ( mathutils.Matrix.Translation( center) * 
             mat_rot * 
             mathutils.Matrix.Translation(-center))

eu = mathutils.Euler(map(radians, (20.0, 30.0, 40.0), 'XYZ').to_matrix().to_4x4()
newRotMat = rotate_around_center(eu, boneWP.location) * boneWP