I would just queue the image processing task (using GAE queue) to have the work done in the background. Doing it right when the form is submitted is possible too but will cause delays to the user.
You could insert a logo by converting the image into uncompressed format (e.g. bmp), modifying the pixel array directly and converting the image string again to png or jpg. Using PIL is only possible with python2.7. You just do "import PIL" as usual and read images from the blob as strings.