public function bulk_insert( array $records ) {
		// Build cols.
		$cols = [];
		foreach ( $records as $record ) {
			foreach ( $record as $key => $value ) {
				$cols[] = $key;
			}
			break;
		}
		$current_time = current_time( 'mysql', $this->use_gmt() );
		foreach ( [ 'created', 'updated' ] as $key ) {
			if ( !in_array( $key, $cols ) ) {
				$cols[] = $key;
				$records = array_map( function( $values ) use ( $key ) {
					$values[ $key ] = current_time( 'mysql', true );
					return $values;
				}, $records );
			}
		}
		$value_expression = implode( ', ', array_map( function( $values ) {
			$escaped_values = [];
			foreach ( $values as $key => $value ) {
				$escaped_values[] = $this->db->prepare( $this->get_place_holder( $key ), $value );
			}
			return sprintf( '(%s)', implode( ', ', $escaped_values ) );
		}, $records ) );
		$cols = implode( ', ', array_map( function( $col ) {
			return "`{$col}`";
		}, $cols ) );
		$query = <<<SQL
			INSERT INTO {$this->table} ( {$cols} ) VALUES {$value_expression}
SQL;
		return $this->db->query( $query );
	}