In that case you write two pages, the first page containing the first 256 bytes and the second page containing the following 34 bytes.
You can do a speed check to see if writing the second page's 34 bytes by using the byte write is faster, but I doubt that.
In case you want to keep from the second page the remainder of the 34 bytes (the 256-34 bytes following), you first read the second page, than you change the first 34 bytes, than write it back.
Also note that there is a limit on the number of writes on a page. This is called page wearing. So if you write these 2 pages very often, you might want to come up with an algorithm to rotate through all the available pages in your EEPROM, and not writing every time to the same 2 pages.
Assume you want to write totalBytesToWrite:
// Calculate the number of pages to write, round up.
int pagesToWrite = int((totalBytesToWrite + 255) / 256;
for (int page = 0; page < pagesToWrite; page++) // Current page to be written
// Calculate number of bytes to be written in this page, for the last page, write remaining bytes, otherwise 256
int pageBytesToWrite = (page == pagesToWrite - 1 ? totalBytesToWrite % 256 : 256;
// Write page (btw, I do not know what the second argument char deviceAddress means)
page_write(n / 256, ??, &memory[n], pageBytesToWrite);