Updates part of the buffer with new data from data.
 Where to put this new data is controlled by offset and offset + data should be less than the 
            buffer size.
| buffer | a buffer object | 
| offset | destination offset (in bytes) in the buffer | 
| data | a pointer to the data to be copied into the buffer | 
| size | number of bytes to copy | 
| true is the operation succeeded, false otherwise |