code: func (c *cursor) First() bool {
  	// Ensure transaction state is valid.
  	if err := c.bucket.tx.checkClosed(); err != nil {
  		return false
  	}
  
  	// Seek to the first key in both the database and pending iterators and
  	// choose the iterator that is both valid and has the smaller key.
  	c.dbIter.First()
  	c.pendingIter.First()
  	return c.chooseIterator(true)
  }
docs: // First positions the cursor at the first key/value pair and returns whether or
  // not the pair exists.
  //
  // This function is part of the database.Cursor interface implementation.