It is the
post_parent field, actually. So, in order to properly answer your question, we would need to know why you think that is not the case.
Based on your comment, I suspect you also need to set the post_status to "inherit".
Also, the GUID isn't the URL of the file anymore, not since 2.7. That might still actually work, but it is not reliable.
Instead of filling that GUID in, examine the postmeta table for a normally uploaded image, and you will find two rows for the post.
One of these is the _wp_attached_file row, which will have the local path name of the image (from the uploads folder).
The other will be the _wp_attachment_metadata row, which contains a PHP serialized array of the image information. This includes width, height, filename, various sizes of the image that exist, and the image_meta array, which contains data extracted from the image's EXIF information, like shutter speed, iso information, camera model, etc.
To get the image working properly, you will likely need to fill in both of these rows, at least partially. Not all the metadata is actually needed, but the size and filename info is somewhat important.