Google doesn't use triangulation since neighboring cell strength isn't available through the API. They do use the location of the tower currently providing service, which is available. They have a large database of cellphone tower locations, but then Google knows everything.
There is a crowd source database that is available called
OpenCellId which aims to provide the same functionality but is open to developers. Their data is, of course, not as extensive as Google's.