Confused about reading data I2C

The Wire.endTransmission() part is what actually sends the data to the device. It is NOT optional.

The argument to the function defines whether or not to release the I2C channel when the function ends. In general, it is a good idea to do so.